/***********************************************************************
*
* Copyright (c) 2012-2022 Barbara Geller
* Copyright (c) 2012-2022 Ansel Sermersheim
*
* Copyright (c) 2015 The Qt Company Ltd.
* Copyright (c) 2012-2016 Digia Plc and/or its subsidiary(-ies).
* Copyright (c) 2008-2012 Nokia Corporation and/or its subsidiary(-ies).
*
* This file is part of CopperSpice.
*
* CopperSpice is free software. You can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* CopperSpice is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* https://www.gnu.org/licenses/
*
***********************************************************************/

#ifndef QDECLARATIVEVALUETYPESCRIPTCLASS_P_H
#define QDECLARATIVEVALUETYPESCRIPTCLASS_P_H

#include <qscriptdeclarativeclass_p.h>

QT_BEGIN_NAMESPACE

class QDeclarativeEngine;
class QDeclarativeValueType;

class QDeclarativeValueTypeScriptClass : public QScriptDeclarativeClass
{
 public:
   QDeclarativeValueTypeScriptClass(QDeclarativeEngine *);
   ~QDeclarativeValueTypeScriptClass();

   QScriptValue newObject(QObject *object, int coreIndex, QDeclarativeValueType *);
   QScriptValue newObject(const QVariant &, QDeclarativeValueType *);

   virtual QScriptClass::QueryFlags queryProperty(Object *, const Identifier &,
         QScriptClass::QueryFlags flags);
   virtual Value property(Object *, const Identifier &);
   virtual void setProperty(Object *, const Identifier &name, const QScriptValue &);

   virtual QVariant toVariant(Object *, bool *ok = 0);
   QVariant toVariant(const QScriptValue &);
 private:
   QDeclarativeEngine *engine;
   int m_lastIndex;
};

QT_END_NAMESPACE

#endif // QDECLARATIVEVALUETYPESCRIPTCLASS_P_H

